package com.sj.mbs.psninfob.service;

import com.sj.common.exception.AppException;
import com.sj.common.exception.MbsException;
import com.sj.common.utils.*;
import com.sj.mbs.psninfob.pojo.PsnInfoB;
import com.sj.mbs.psninfob.mapper.PsnInfoBMapper;
import com.sj.mbs.psninfob.service.PsnInfoBService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.ArrayList;

/**
 * 人员基本信息表(PsnInfoB)表服务实现类
 *
 * @author zhangsj
 * @since 2021-12-21 21:51:08
 */
@Service("psnInfoBService")
public class PsnInfoBServiceImpl implements PsnInfoBService {
    @Resource
    private PsnInfoBMapper psnInfoBMapper;

    /**
     * 通过ID查询单条数据
     */
    @Override
    public PsnInfoB queryById(Integer id) {
        return this.psnInfoBMapper.queryById(id);
    }
     /**
     * 查询全部
     */
    @Override
    public List<PsnInfoB> queryAll(PsnInfoB psnInfoB) {
        return this.psnInfoBMapper.queryAll(psnInfoB);
    }

    /**
     * 查总数
     */
    @Override
    public Integer getCount() {
        return this.psnInfoBMapper.getCount();
    }


    /**
     * 新增数据
     */
    @Override
    public PsnInfoB insert(PsnInfoB psnInfoB) throws MbsException {
        CurrentUser currentUser = BaseUtil.mockuser();
        ObjectConversionUtil.convert(psnInfoB, CopyUser.copy(currentUser));
        psnInfoB.setValiFlag(BusinessConst.VALI_FLAG_1_YX);
        psnInfoB.setVer("1");
        this.psnInfoBMapper.insert(psnInfoB);
        return psnInfoB;
    }

    /**
     * 修改数据
     */
    @Override
    public Integer update(PsnInfoB psnInfoB) {
        return this.psnInfoBMapper.update(psnInfoB);
    }

    /**
     * 通过主键删除数据
     */
    @Override
    public boolean deleteById(Integer id) {
        return this.psnInfoBMapper.deleteById(id) > 0;
    }


     /**
     * 转换方法
     */
    @Override
    public PsnInfoB changePojo(PsnInfoB psnInfoB) {
        //这里写转换逻辑
        return psnInfoB;
    }

     /**
     * 列表转换
     */
    @Override
    public List<PsnInfoB> changeModel(List<PsnInfoB> psnInfoB) {
        List<PsnInfoB> result = new ArrayList<PsnInfoB>();
        if (null!=psnInfoB) {
            for (PsnInfoB data:psnInfoB){
                result.add(changePojo(data));
            }
        }
        return result;
    }
}

